package com.pureut.system.service;

import com.pureut.common.core.web.domain.AjaxResult;
import com.pureut.system.domain.SysShopModeling;
import com.pureut.system.domain.dto.ProjectModelingDto;
import com.pureut.system.domain.dto.SysLineDto;
import com.pureut.system.domain.vo.SysShopModelingVo;

import java.util.List;

/**
 * @Description
 * @Param
 * @Date
 * @Author hl
 **/
public interface ISysShopModelingService {

    /**
     * 查询车间建模信息
     */
    List<SysShopModeling> selectShopModelingList(SysShopModelingVo sysShopModeling);

    /**
     * 新增车间建模信息
     */
    int insertShopModeling(SysShopModeling sysShopModeling) throws Exception;

    /**
     * 树结构展示
     */
    List<ProjectModelingDto> selectChildrenModelingThe();

    /**
     * 查询单个车间建模
     */
    SysShopModeling selectModelingById(long modelingId);

    /**
     * 修改车间建模
     */
    int updateShopModelingEdit(SysShopModeling sysShopModeling) throws Exception;

    /**
     * 批量删除车间建模
     */
    AjaxResult deleteModelingById(String modelingId) throws Exception;

    /**
     * 车间建模车间下拉
     * @return
     */
    List<SysShopModeling> getWorkshop();

    /**
     * 车间建模线别下拉
     * @return
     */
    List<SysShopModeling> getLine();

    /**
     * 根据车间id获取线别
     * @return
     */
    List<SysLineDto> getModelingLine(long modelingId);

    /**
     * 根据线别编码获取线别名称
     * @param lineCode
     * @return
     */
    SysLineDto getModelingLineInfo(String lineCode);

    /**
     * 根据线别编码获取车间id(fegin调用)
     */
    SysShopModeling getWorkshopId(String lineCode);

    /**
     * 获取脱脂线别
     */
    List<SysLineDto> getDegreasLine();

    /**
     * 获取分切线别
     */
    List<SysLineDto> getCutLine();

    /**
     * 获取水刺线别
     */
    List<SysLineDto> getSphinxLine();

    /**
     * 获取分切下的车间
     */
    List<SysShopModeling> getCutShopModeling();

    /**
     * 获取脱脂下的车间
     */
    List<SysShopModeling> getDegreasShopModeling();

    /**
     *  根据线别编码获取id
     */
    Long getLineId(String lineCode);

    /**
     * 根据线别编码获取车间编码(fegin调用)
     * @param lineCode
     * @return
     */
    String getWorkshopCode(String lineCode);

    /**
     * 根据线别编码查询线别仓库
     * @param lineCode
     * @return
     */
    Long getStorage(String lineCode);
}
